﻿using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using Valve.VR;

// Token: 0x02000819 RID: 2073
public static class SteamVR_Events
{
	// Token: 0x06002FD6 RID: 12246 RVA: 0x000F6900 File Offset: 0x000F4B00
	public static SteamVR_Events.Action CalibratingAction(UnityAction<bool> action)
	{
		return new SteamVR_Events.Action<bool>(SteamVR_Events.Calibrating, action);
	}

	// Token: 0x06002FD7 RID: 12247 RVA: 0x000F6910 File Offset: 0x000F4B10
	public static SteamVR_Events.Action DeviceConnectedAction(UnityAction<int, bool> action)
	{
		return new SteamVR_Events.Action<int, bool>(SteamVR_Events.DeviceConnected, action);
	}

	// Token: 0x06002FD8 RID: 12248 RVA: 0x000F6920 File Offset: 0x000F4B20
	public static SteamVR_Events.Action FadeAction(UnityAction<Color, float, bool> action)
	{
		return new SteamVR_Events.Action<Color, float, bool>(SteamVR_Events.Fade, action);
	}

	// Token: 0x06002FD9 RID: 12249 RVA: 0x000F6930 File Offset: 0x000F4B30
	public static SteamVR_Events.Action FadeReadyAction(UnityAction action)
	{
		return new SteamVR_Events.ActionNoArgs(SteamVR_Events.FadeReady, action);
	}

	// Token: 0x06002FDA RID: 12250 RVA: 0x000F6940 File Offset: 0x000F4B40
	public static SteamVR_Events.Action HideRenderModelsAction(UnityAction<bool> action)
	{
		return new SteamVR_Events.Action<bool>(SteamVR_Events.HideRenderModels, action);
	}

	// Token: 0x06002FDB RID: 12251 RVA: 0x000F6950 File Offset: 0x000F4B50
	public static SteamVR_Events.Action InitializingAction(UnityAction<bool> action)
	{
		return new SteamVR_Events.Action<bool>(SteamVR_Events.Initializing, action);
	}

	// Token: 0x06002FDC RID: 12252 RVA: 0x000F6960 File Offset: 0x000F4B60
	public static SteamVR_Events.Action InputFocusAction(UnityAction<bool> action)
	{
		return new SteamVR_Events.Action<bool>(SteamVR_Events.InputFocus, action);
	}

	// Token: 0x06002FDD RID: 12253 RVA: 0x000F6970 File Offset: 0x000F4B70
	public static SteamVR_Events.Action LoadingAction(UnityAction<bool> action)
	{
		return new SteamVR_Events.Action<bool>(SteamVR_Events.Loading, action);
	}

	// Token: 0x06002FDE RID: 12254 RVA: 0x000F6980 File Offset: 0x000F4B80
	public static SteamVR_Events.Action LoadingFadeInAction(UnityAction<float> action)
	{
		return new SteamVR_Events.Action<float>(SteamVR_Events.LoadingFadeIn, action);
	}

	// Token: 0x06002FDF RID: 12255 RVA: 0x000F6990 File Offset: 0x000F4B90
	public static SteamVR_Events.Action LoadingFadeOutAction(UnityAction<float> action)
	{
		return new SteamVR_Events.Action<float>(SteamVR_Events.LoadingFadeOut, action);
	}

	// Token: 0x06002FE0 RID: 12256 RVA: 0x000F69A0 File Offset: 0x000F4BA0
	public static SteamVR_Events.Action NewPosesAction(UnityAction<TrackedDevicePose_t[]> action)
	{
		return new SteamVR_Events.Action<TrackedDevicePose_t[]>(SteamVR_Events.NewPoses, action);
	}

	// Token: 0x06002FE1 RID: 12257 RVA: 0x000F69B0 File Offset: 0x000F4BB0
	public static SteamVR_Events.Action NewPosesAppliedAction(UnityAction action)
	{
		return new SteamVR_Events.ActionNoArgs(SteamVR_Events.NewPosesApplied, action);
	}

	// Token: 0x06002FE2 RID: 12258 RVA: 0x000F69C0 File Offset: 0x000F4BC0
	public static SteamVR_Events.Action OutOfRangeAction(UnityAction<bool> action)
	{
		return new SteamVR_Events.Action<bool>(SteamVR_Events.OutOfRange, action);
	}

	// Token: 0x06002FE3 RID: 12259 RVA: 0x000F69D0 File Offset: 0x000F4BD0
	public static SteamVR_Events.Action RenderModelLoadedAction(UnityAction<SteamVR_RenderModel, bool> action)
	{
		return new SteamVR_Events.Action<SteamVR_RenderModel, bool>(SteamVR_Events.RenderModelLoaded, action);
	}

	// Token: 0x06002FE4 RID: 12260 RVA: 0x000F69E0 File Offset: 0x000F4BE0
	public static SteamVR_Events.Event<VREvent_t> System(EVREventType eventType)
	{
		SteamVR_Events.Event<VREvent_t> @event;
		if (!SteamVR_Events.systemEvents.TryGetValue(eventType, out @event))
		{
			@event = new SteamVR_Events.Event<VREvent_t>();
			SteamVR_Events.systemEvents.Add(eventType, @event);
		}
		return @event;
	}

	// Token: 0x06002FE5 RID: 12261 RVA: 0x000F6A14 File Offset: 0x000F4C14
	public static SteamVR_Events.Action SystemAction(EVREventType eventType, UnityAction<VREvent_t> action)
	{
		return new SteamVR_Events.Action<VREvent_t>(SteamVR_Events.System(eventType), action);
	}

	// Token: 0x04002FB0 RID: 12208
	public static SteamVR_Events.Event<bool> Calibrating = new SteamVR_Events.Event<bool>();

	// Token: 0x04002FB1 RID: 12209
	public static SteamVR_Events.Event<int, bool> DeviceConnected = new SteamVR_Events.Event<int, bool>();

	// Token: 0x04002FB2 RID: 12210
	public static SteamVR_Events.Event<Color, float, bool> Fade = new SteamVR_Events.Event<Color, float, bool>();

	// Token: 0x04002FB3 RID: 12211
	public static SteamVR_Events.Event FadeReady = new SteamVR_Events.Event();

	// Token: 0x04002FB4 RID: 12212
	public static SteamVR_Events.Event<bool> HideRenderModels = new SteamVR_Events.Event<bool>();

	// Token: 0x04002FB5 RID: 12213
	public static SteamVR_Events.Event<bool> Initializing = new SteamVR_Events.Event<bool>();

	// Token: 0x04002FB6 RID: 12214
	public static SteamVR_Events.Event<bool> InputFocus = new SteamVR_Events.Event<bool>();

	// Token: 0x04002FB7 RID: 12215
	public static SteamVR_Events.Event<bool> Loading = new SteamVR_Events.Event<bool>();

	// Token: 0x04002FB8 RID: 12216
	public static SteamVR_Events.Event<float> LoadingFadeIn = new SteamVR_Events.Event<float>();

	// Token: 0x04002FB9 RID: 12217
	public static SteamVR_Events.Event<float> LoadingFadeOut = new SteamVR_Events.Event<float>();

	// Token: 0x04002FBA RID: 12218
	public static SteamVR_Events.Event<TrackedDevicePose_t[]> NewPoses = new SteamVR_Events.Event<TrackedDevicePose_t[]>();

	// Token: 0x04002FBB RID: 12219
	public static SteamVR_Events.Event NewPosesApplied = new SteamVR_Events.Event();

	// Token: 0x04002FBC RID: 12220
	public static SteamVR_Events.Event<bool> OutOfRange = new SteamVR_Events.Event<bool>();

	// Token: 0x04002FBD RID: 12221
	public static SteamVR_Events.Event<SteamVR_RenderModel, bool> RenderModelLoaded = new SteamVR_Events.Event<SteamVR_RenderModel, bool>();

	// Token: 0x04002FBE RID: 12222
	private static Dictionary<EVREventType, SteamVR_Events.Event<VREvent_t>> systemEvents = new Dictionary<EVREventType, SteamVR_Events.Event<VREvent_t>>();

	// Token: 0x0200081A RID: 2074
	public abstract class Action
	{
		// Token: 0x06002FE8 RID: 12264
		public abstract void Enable(bool enabled);

		// Token: 0x1700052E RID: 1326
		// (set) Token: 0x06002FE9 RID: 12265 RVA: 0x000F6AD0 File Offset: 0x000F4CD0
		public bool enabled
		{
			set
			{
				this.Enable(value);
			}
		}
	}

	// Token: 0x0200081B RID: 2075
	[Serializable]
	public class ActionNoArgs : SteamVR_Events.Action
	{
		// Token: 0x06002FEA RID: 12266 RVA: 0x000F6ADC File Offset: 0x000F4CDC
		public ActionNoArgs(SteamVR_Events.Event _event, UnityAction action)
		{
			this._event = _event;
			this.action = action;
		}

		// Token: 0x06002FEB RID: 12267 RVA: 0x000F6AF4 File Offset: 0x000F4CF4
		public override void Enable(bool enabled)
		{
			if (enabled)
			{
				this._event.Listen(this.action);
			}
			else
			{
				this._event.Remove(this.action);
			}
		}

		// Token: 0x04002FBF RID: 12223
		private SteamVR_Events.Event _event;

		// Token: 0x04002FC0 RID: 12224
		private UnityAction action;
	}

	// Token: 0x0200081C RID: 2076
	[Serializable]
	public class Action<T> : SteamVR_Events.Action
	{
		// Token: 0x06002FEC RID: 12268 RVA: 0x000F6B24 File Offset: 0x000F4D24
		public Action(SteamVR_Events.Event<T> _event, UnityAction<T> action)
		{
			this._event = _event;
			this.action = action;
		}

		// Token: 0x06002FED RID: 12269 RVA: 0x000F6B3C File Offset: 0x000F4D3C
		public override void Enable(bool enabled)
		{
			if (enabled)
			{
				this._event.Listen(this.action);
			}
			else
			{
				this._event.Remove(this.action);
			}
		}

		// Token: 0x04002FC1 RID: 12225
		private SteamVR_Events.Event<T> _event;

		// Token: 0x04002FC2 RID: 12226
		private UnityAction<T> action;
	}

	// Token: 0x0200081D RID: 2077
	[Serializable]
	public class Action<T0, T1> : SteamVR_Events.Action
	{
		// Token: 0x06002FEE RID: 12270 RVA: 0x000F6B6C File Offset: 0x000F4D6C
		public Action(SteamVR_Events.Event<T0, T1> _event, UnityAction<T0, T1> action)
		{
			this._event = _event;
			this.action = action;
		}

		// Token: 0x06002FEF RID: 12271 RVA: 0x000F6B84 File Offset: 0x000F4D84
		public override void Enable(bool enabled)
		{
			if (enabled)
			{
				this._event.Listen(this.action);
			}
			else
			{
				this._event.Remove(this.action);
			}
		}

		// Token: 0x04002FC3 RID: 12227
		private SteamVR_Events.Event<T0, T1> _event;

		// Token: 0x04002FC4 RID: 12228
		private UnityAction<T0, T1> action;
	}

	// Token: 0x0200081E RID: 2078
	[Serializable]
	public class Action<T0, T1, T2> : SteamVR_Events.Action
	{
		// Token: 0x06002FF0 RID: 12272 RVA: 0x000F6BB4 File Offset: 0x000F4DB4
		public Action(SteamVR_Events.Event<T0, T1, T2> _event, UnityAction<T0, T1, T2> action)
		{
			this._event = _event;
			this.action = action;
		}

		// Token: 0x06002FF1 RID: 12273 RVA: 0x000F6BCC File Offset: 0x000F4DCC
		public override void Enable(bool enabled)
		{
			if (enabled)
			{
				this._event.Listen(this.action);
			}
			else
			{
				this._event.Remove(this.action);
			}
		}

		// Token: 0x04002FC5 RID: 12229
		private SteamVR_Events.Event<T0, T1, T2> _event;

		// Token: 0x04002FC6 RID: 12230
		private UnityAction<T0, T1, T2> action;
	}

	// Token: 0x0200081F RID: 2079
	public class Event : UnityEvent
	{
		// Token: 0x06002FF3 RID: 12275 RVA: 0x000F6C04 File Offset: 0x000F4E04
		public void Listen(UnityAction action)
		{
			base.AddListener(action);
		}

		// Token: 0x06002FF4 RID: 12276 RVA: 0x000F6C10 File Offset: 0x000F4E10
		public void Remove(UnityAction action)
		{
			base.RemoveListener(action);
		}

		// Token: 0x06002FF5 RID: 12277 RVA: 0x000F6C1C File Offset: 0x000F4E1C
		public void Send()
		{
			base.Invoke();
		}
	}

	// Token: 0x02000820 RID: 2080
	public class Event<T> : UnityEvent<T>
	{
		// Token: 0x06002FF7 RID: 12279 RVA: 0x000F6C2C File Offset: 0x000F4E2C
		public void Listen(UnityAction<T> action)
		{
			base.AddListener(action);
		}

		// Token: 0x06002FF8 RID: 12280 RVA: 0x000F6C38 File Offset: 0x000F4E38
		public void Remove(UnityAction<T> action)
		{
			base.RemoveListener(action);
		}

		// Token: 0x06002FF9 RID: 12281 RVA: 0x000F6C44 File Offset: 0x000F4E44
		public void Send(T arg0)
		{
			base.Invoke(arg0);
		}
	}

	// Token: 0x02000821 RID: 2081
	public class Event<T0, T1> : UnityEvent<T0, T1>
	{
		// Token: 0x06002FFB RID: 12283 RVA: 0x000F6C58 File Offset: 0x000F4E58
		public void Listen(UnityAction<T0, T1> action)
		{
			base.AddListener(action);
		}

		// Token: 0x06002FFC RID: 12284 RVA: 0x000F6C64 File Offset: 0x000F4E64
		public void Remove(UnityAction<T0, T1> action)
		{
			base.RemoveListener(action);
		}

		// Token: 0x06002FFD RID: 12285 RVA: 0x000F6C70 File Offset: 0x000F4E70
		public void Send(T0 arg0, T1 arg1)
		{
			base.Invoke(arg0, arg1);
		}
	}

	// Token: 0x02000822 RID: 2082
	public class Event<T0, T1, T2> : UnityEvent<T0, T1, T2>
	{
		// Token: 0x06002FFF RID: 12287 RVA: 0x000F6C84 File Offset: 0x000F4E84
		public void Listen(UnityAction<T0, T1, T2> action)
		{
			base.AddListener(action);
		}

		// Token: 0x06003000 RID: 12288 RVA: 0x000F6C90 File Offset: 0x000F4E90
		public void Remove(UnityAction<T0, T1, T2> action)
		{
			base.RemoveListener(action);
		}

		// Token: 0x06003001 RID: 12289 RVA: 0x000F6C9C File Offset: 0x000F4E9C
		public void Send(T0 arg0, T1 arg1, T2 arg2)
		{
			base.Invoke(arg0, arg1, arg2);
		}
	}
}
